Mockito中模拟静态方法 您所在的位置:网站首页 mockito mock静态方法 Mockito中模拟静态方法

Mockito中模拟静态方法

2023-08-26 05:49| 来源: 网络整理| 查看: 265

Mockito中模拟静态方法 背景

在项目实际开发中,编写单元测试用例时,需要对静态方法进行模拟,本次文章就简单整理下如何使用Mockito来模拟静态方法。

添加依赖 org.mockito mockito-inline 3.8.0 测试类

测试类中有两个方法,一个带参数,一个不带参数

static class StaticUtils { static String getName() { return "yuan"; } static int add(int x, int y) { return x + y; } } 静态方法模拟

在Mockito中可以使用Mockito.mockStatic( Class classToMock )方法来模拟对静态方法的调用,它会返回一个MockedStatic类型的模拟对象,该对象继承了AutoCloseable接口,需要手动释放资源。下面是具体的使用:

无参方法 @Test public void testStaticWithNoArgs() { // 无参方法模拟 try (final MockedStatic staticUtilsMockedStatic = Mockito.mockStatic(StaticUtils.class)) { staticUtilsMockedStatic.when(StaticUtils::getName).thenReturn("wu"); Assert.assertEquals(StaticUtils.getName(), "wu"); } } 有参方法 @Test public void testStaticWithArgs() { // 有参方法模拟 try (MockedStatic staticUtilsMockedStatic = Mockito.mockStatic(StaticUtils.class)) { staticUtilsMockedStatic.when(() -> StaticUtils.add(Mockito.anyInt(), Mockito.anyInt())).thenReturn(55); Assert.assertEquals(StaticUtils.add(1,3), 52); } } 结语

参考:https://www.baeldung.com/mockito-mock-static-methods

代码地址:https://github.com/yzh19961031/blogDemo/tree/master/mockitoTest



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有